import cv2
import numpy as np

# 读取两张图片
image1 = cv2.imread('images2/Img_0.png')
image2 = cv2.imread('template_640.jpg')

# 将图片转换为灰度图
gray1 = cv2.cvtColor(image1, cv2.COLOR_BGR2GRAY)

# 使用阈值检测黑色区域，假设黑色是接近0的像素值
_, thresh1 = cv2.threshold(gray1, 155, 255, cv2.THRESH_BINARY_INV)

# 找到黑色矩形轮廓
contours, _ = cv2.findContours(thresh1, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)

# 假设找到的是黑色矩形的最大轮廓
max_contour = max(contours, key=cv2.contourArea)

# 获取矩形的边界框
x, y, w, h = cv2.boundingRect(max_contour)

# 从第一张图片中提取黑色矩形区域
black_rectangle = image1[y:y+h, x:x+w]

# 将提取出的矩形区域放到第二张图片的相应位置
image2[y:y+h, x:x+w] = black_rectangle

# 显示结果
cv2.imshow('Result Image', image2)
cv2.waitKey(0)
cv2.destroyAllWindows()

# 保存结果图像
cv2.imwrite('result_image.jpg', image2)
